﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.Data.SqlClient;
using FastReport.Export.Pdf;
using PubOp;
using System.IO;


namespace ToReview
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        string path = null;
        string path1 = null;
        string path2 = null;
        static string strFilePath = Application.StartupPath + @"\Appli.ini";
        OperateIniFile op = new OperateIniFile();
        static string adress = OperateIniFile.ReadIniData("存放位置", "adress", "", strFilePath);
        static string filename = OperateIniFile.ReadIniData("存放位置", "filename", "", strFilePath);

        public void Print(bool bPrint,string sender)
        {
            DataTable dt = new DataTable();
            #region
            dt.Columns.Add("座");
            dt.Columns.Add("卧");
            dt.Columns.Add("双");
            dt.Columns.Add("复核时间");
            dt.Columns.Add("牌照号码");
            dt.Columns.Add("车属单位");
            dt.Columns.Add("厂牌型号");
            dt.Columns.Add("营运证号");
            dt.Columns.Add("批次号");
            dt.Columns.Add("注册日期");
            dt.Columns.Add("过户日期");
            dt.Columns.Add("外廓尺寸");
            dt.Columns.Add("总质量");
            dt.Columns.Add("比功率");
            dt.Columns.Add("发动机号");
            dt.Columns.Add("底盘号码");
            dt.Columns.Add("最高车速");
            dt.Columns.Add("乘客座位数");
            dt.Columns.Add("匀速行驶噪声");
            dt.Columns.Add("发动机位置前");
            dt.Columns.Add("发动机位置中");
            dt.Columns.Add("发动机位置后");
            dt.Columns.Add("燃料柴油");
            dt.Columns.Add("燃料汽油");
            dt.Columns.Add("燃料其它");
            dt.Columns.Add("乘客门位置前");
            dt.Columns.Add("乘客门位置中");
            dt.Columns.Add("乘客门位置后");
            dt.Columns.Add("门结构单");
            dt.Columns.Add("门结构双");
            dt.Columns.Add("门结构折叠");
            dt.Columns.Add("通道宽");
            dt.Columns.Add("全承载式车身");
            dt.Columns.Add("推拉车窗");
            dt.Columns.Add("胶粘车窗");
            dt.Columns.Add("行李仓总容积");
            dt.Columns.Add("行李仓人均容积");
            dt.Columns.Add("排放限值");
            dt.Columns.Add("燃料消耗量");
            dt.Columns.Add("乘客门应急控制器");
            dt.Columns.Add("悬架A");
            dt.Columns.Add("悬架B");
            dt.Columns.Add("悬架C");
            dt.Columns.Add("制动系A");
            dt.Columns.Add("制动系B");
            dt.Columns.Add("制动系C");
            dt.Columns.Add("制动系D");
            dt.Columns.Add("无内胎子午线胎");
            dt.Columns.Add("子午线胎");
            dt.Columns.Add("胎压监测报警系统");
            dt.Columns.Add("动力转向");
            dt.Columns.Add("底盘自动润滑");
            dt.Columns.Add("散热系统");
            dt.Columns.Add("配置冷");
            dt.Columns.Add("配置暖");
            dt.Columns.Add("强制通风换气量25");
            dt.Columns.Add("强制通风换气量20");
            dt.Columns.Add("人均制冷量2000");
            dt.Columns.Add("人均制冷量1900");
            dt.Columns.Add("人均制冷量1800");
            dt.Columns.Add("人均供热量2000");
            dt.Columns.Add("人均供热量1900");
            dt.Columns.Add("人均供热量1800");
            dt.Columns.Add("温度人工控制装置");
            dt.Columns.Add("温度自动控制装置");
            dt.Columns.Add("空气净化装置");
            dt.Columns.Add("座垫宽");
            dt.Columns.Add("座垫深度");
            dt.Columns.Add("背靠高度");
            dt.Columns.Add("同向座间距");
            dt.Columns.Add("靠背角可调");
            dt.Columns.Add("座椅左右可调");
            dt.Columns.Add("座椅脚蹬");
            dt.Columns.Add("安全带");
            dt.Columns.Add("三点式安全带");
            dt.Columns.Add("排列形式1+1");
            dt.Columns.Add("排列形式1+1+1");
            dt.Columns.Add("卧铺平躺");
            dt.Columns.Add("卧铺半躺");
            dt.Columns.Add("靠背调节");
            dt.Columns.Add("铺长");
            dt.Columns.Add("铺宽");
            dt.Columns.Add("铺纵向间距");
            dt.Columns.Add("铺横向间距");
            dt.Columns.Add("上铺空间高");
            dt.Columns.Add("铺间宽度");
            dt.Columns.Add("重叠脚窝内端高");
            dt.Columns.Add("下铺面距地高");
            dt.Columns.Add("护栏高度");
            dt.Columns.Add("铺垫高度");
            dt.Columns.Add("卫生间");
            dt.Columns.Add("CAN总线");
            dt.Columns.Add("卫星定位系统");
            dt.Columns.Add("缓速器报警");
            dt.Columns.Add("自动灭火装置");
            dt.Columns.Add("发动机仓自动灭火装置");
            dt.Columns.Add("应急出口");
            dt.Columns.Add("应急锤");
            dt.Columns.Add("防盗、报警装置");
            dt.Columns.Add("双层、卧铺客车侧倾稳定性");
            dt.Columns.Add("质量保证期");
            dt.Columns.Add("防雨密封性");
            dt.Columns.Add("客车类型");
            dt.Columns.Add("客车等级");
            #endregion
            DataRow dr = dt.NewRow();
            #region
            if(z.Checked)
            {
                dr["座"] = 1;
            }
            else
            {
                dr["座"] = 0;
            }
            if (w.Checked)
            {
                dr["卧"] = 1;
            }
            else
            {
                dr["卧"] = 0;
            }
            if (s.Checked)
            {
                dr["双"] = 1;
            }
            else
            {
                dr["双"] = 0;
            }
            if (maskedTextBox1.Text.Replace(" ","") == "")
            {
                dr["复核时间"] = DateTime.Now.ToString("yyyy-MM-dd");
            }
            else
            {
                dr["复核时间"] = maskedTextBox1.Text;
            }
            dr["牌照号码"] = pzhm.Text;
            dr["车属单位"] = csdw.Text;
            dr["厂牌型号"] = cpxh.Text;
            dr["营运证号"] = yyzh.Text;
            dr["批次号"] = pch.Text;
            dr["注册日期"] = zcrq.Text;
            dr["过户日期"] = ghrq.Text;
            dr["外廓尺寸"] = wkc.Text + "    " + wkk.Text + "    " + wkgd.Text;
            dr["总质量"] = zzl.Text;
            dr["比功率"] = bgv.Text;
            dr["发动机号"] = fdjh.Text;
            dr["底盘号码"] = dphm.Text;
            dr["最高车速"] = zgcs.Text;
            dr["乘客座位数"] = zws.Text;
            dr["匀速行驶噪声"] = ysxszs.Text;
            if(fdjwzq.Checked)
            {
                dr["发动机位置前"] = 1;
            }
            else
            {
                dr["发动机位置前"] = 0;
            }
            if(fdjwzz.Checked)
            {
                dr["发动机位置中"] = 1;
            }
            else
            {
                dr["发动机位置中"] = 0;
            }
            if(fdjwzh.Checked)
            {
                dr["发动机位置后"] = 1;
            }
            else
            {
                dr["发动机位置后"] = 0;
            }
            if (rlcy.Checked)
            {
                dr["燃料柴油"] = 1;
            }
            else
            {
                dr["燃料柴油"] = 0;
            }
            if (rlqy.Checked)
            {
                dr["燃料汽油"] = 1;
            }
            else
            {
                dr["燃料汽油"] = 0;
            }
            if (rlqt.Checked)
            {
                dr["燃料其它"] =1;
            }
            else
            {
                dr["燃料其它"] = 0;
            }
            if (ckmwzq.Checked)
            {
                dr["乘客门位置前"] =1;
            }
            else
            {
                dr["乘客门位置前"] = 0;
            }
            if (ckmwzz.Checked)
            {
                dr["乘客门位置中"] = 1;
            }
            else
            {
                dr["乘客门位置中"] = 0;
            }
            if (ckmwzh.Checked)
            {
                dr["乘客门位置后"] = 1;
            }
            else
            {
                dr["乘客门位置后"] = 0;
            }
            if (mjgd.Checked)
            {
                dr["门结构单"] = 1;
            }
            else
            {
                dr["门结构单"] = 0;
            }
            if (mjgs.Checked)
            {
                dr["门结构双"] = 1;
            }
            else
            {
                dr["门结构双"] = 0;
            }
            if (mjgzd.Checked)
            {
                dr["门结构折叠"] = 1;
            }
            else
            {
                dr["门结构折叠"] = 0;
            }
            dr["通道宽"] = tdk.Text;
            if (qczscs.Checked)
            {
                dr["全承载式车身"] = 1;
            }
            else
            {
                dr["全承载式车身"] = 0;
            }
            if (tlcc.Checked)
            {
                dr["推拉车窗"] = 1;
            }
            else
            {
                dr["推拉车窗"] = 0;
            }
            if (jzcc.Checked)
            {
                dr["胶粘车窗"] = 1;
            }
            else
            {
                dr["胶粘车窗"] = 0;
            }
            dr["行李仓总容积"] = xlczrj.Text;
            dr["行李仓人均容积"] = xlcrjrj.Text;
            dr["排放限值"] = pfxz.Text;
            dr["燃料消耗量"] = rlxhl.Text;
            if (ckmyjkzq.Checked)
            {
                dr["乘客门应急控制器"] = 1;
            }
            else
            {
                dr["乘客门应急控制器"] = 0;
            }
            if (qdljhqn.Checked)
            {
                dr["悬架A"] = 1;
            }
            else
            {
                dr["悬架A"] = 0;
            }
            if (qqn.Checked)
            {
                dr["悬架B"] =1;
            }
            else
            {
                dr["悬架B"] = 0;
            }
            if (qdljhwsphbdysip.Checked)
            {
                dr["悬架C"] = 1;
            }
            else
            {
                dr["悬架C"] = 0;
            }
            if (qqpszsq.Checked)
            {
                dr["制动系A"] = 1;
            }
            else
            {
                dr["制动系A"] = 0;
            }
            if (absyl.Checked)
            {
                dr["制动系B"] = 1;
            }
            else
            {
                dr["制动系B"] = 0;
            }
            if (tpjxzt.Checked)
            {
                dr["制动系C"] = 1;
            }
            else
            {
                dr["制动系C"] = 0;
            }
            if (hsq.Checked)
            {
                dr["制动系D"] = 1;
            }
            else
            {
                dr["制动系D"] = 0;
            }
            if (wntzwxt.Checked)
            {
                dr["无内胎子午线胎"] = 1;
            }
            else
            {
                dr["无内胎子午线胎"] = 0;
            }
            if (zwxt.Checked)
            {
                dr["子午线胎"] = 1;
            }
            else
            {
                dr["子午线胎"] = 0;
            }
            if (tyjcbjxt.Checked)
            {
                dr["胎压监测报警系统"] = 1;
            }
            else
            {
                dr["胎压监测报警系统"] = 0;
            }
            if (dlzx.Checked)
            {
                dr["动力转向"] = 1;
            }
            else
            {
                dr["动力转向"] = 0;
            }
            if (dpzdrh.Checked)
            {
                dr["底盘自动润滑"] = 1;
            }
            else
            {
                dr["底盘自动润滑"] = 0;
            }
            if (srxt.Checked)
            {
                dr["散热系统"] = 1;
            }
            else
            {
                dr["散热系统"] = 0;
            }
            if (pzl.Checked)
            {
                dr["配置冷"] = 1;
            }
            else
            {
                dr["配置冷"] = 0;
            }
            if (pzn.Checked)
            {
                dr["配置暖"] = 1;
            }
            else
            {
                dr["配置暖"] = 0;
            }
            if (hql25.Checked)
            {
                dr["强制通风换气量25"] = 1;
            }
            else
            {
                dr["强制通风换气量25"] = 0;
            }
            if (hql20.Checked)
            {
                dr["强制通风换气量20"] = 1;
            }
            else
            {
                dr["强制通风换气量20"] = 0;
            }
            if (zll2000.Checked)
            {
                dr["人均制冷量2000"] = 1;
            }
            else
            {
                dr["人均制冷量2000"] = 0;
            }
            if (zll1900.Checked)
            {
                dr["人均制冷量1900"] = 1;
            }
            else
            {
                dr["人均制冷量1900"] = 0;
            }
            if (zll1800.Checked)
            {
                dr["人均制冷量1800"] = 1;
            }
            else
            {
                dr["人均制冷量1800"] = 0;
            }
            if (grl1800.Checked)
            {
                dr["人均供热量2000"] = 1;
            }
            else
            {
                dr["人均供热量2000"] = 0;
            }
            if (grl1900.Checked)
            {
                dr["人均供热量1900"] = 1;
            }
            else
            {
                dr["人均供热量1900"] = 0;
            }
            if (grl1800.Checked)
            {
                dr["人均供热量1800"] = 1;
            }
            else
            {
                dr["人均供热量1800"] = 0;
            }
            if (wdrg.Checked)
            {
                dr["温度人工控制装置"] = 1;
            }
            else
            {
                dr["温度人工控制装置"] = 0;
            }
            if (wdzd.Checked)
            {
                dr["温度自动控制装置"] = 1;
            }
            else
            {
                dr["温度自动控制装置"] = 0;
            }
            if (kqjhzz.Checked)
            {
                dr["空气净化装置"] = 1;
            }
            else
            {
                dr["空气净化装置"] = 0;
            }
            dr["座垫宽"] = zdk.Text;
            dr["座垫深度"] = zdsd.Text;
            dr["背靠高度"] = bkgd.Text;
            dr["同向座间距"] = txzjj.Text;
            if (kbjtj.Checked)
            {
                dr["靠背角可调"] = 1;
            }
            else
            {
                dr["靠背角可调"] = 0;
            }
            if (zyzykt.Checked)
            {
                dr["座椅左右可调"] = 1;
            }
            else
            {
                dr["座椅左右可调"] = 0;
            }
            if (zyjd.Checked)
            {
                dr["座椅脚蹬"] = 1;
            }
            else
            {
                dr["座椅脚蹬"] = 0;
            }
            if (aqd.Checked)
            {
                dr["安全带"] = 1;
            }
            else
            {
                dr["安全带"] = 0;
            }
            if (sdsaqd.Checked)
            {
                dr["三点式安全带"] = 1;
            }
            else
            {
                dr["三点式安全带"] = 0;
            }
            if(plyjy.Checked)
            {
                dr["排列形式1+1"] = 1;
            }
            else
            {
                dr["排列形式1+1"] = 0;
            }
            if(plyjyjy.Checked)
            {
                dr["排列形式1+1+1"] = 1;
            }
            else
            {
                dr["排列形式1+1+1"] = 0;
            }
            if(wppt.Checked)
            {
                dr["卧铺平躺"] = 1;
            }
            else
            {
                dr["卧铺平躺"] = 0;
            }
            if(wpbt.Checked)
            {
                dr["卧铺半躺"] = 1;
            }
            else
            {
                dr["卧铺半躺"] = 0;
            }
            if(kbtj.Checked)
            {
                dr["靠背调节"] = 1;
            }
            else
            {
                dr["靠背调节"] = 0;
            }
            dr["铺长"] = pc.Text;
            dr["铺宽"] = pk.Text;
            dr["铺纵向间距"] = pzxjj.Text;
            dr["铺横向间距"] = phxjj.Text;
            dr["上铺空间高"] = spkjg.Text;
            dr["铺间宽度"] = pjkd.Text;
            dr["重叠脚窝内端高"] = cdjwndg.Text;
            dr["下铺面距地高"] = xpmjdg.Text;
            dr["护栏高度"] = hlgd.Text;
            dr["铺垫高度"] = pdgd.Text;
            if(wsj.Checked)
            {
                dr["卫生间"] = 1;
            }
            else
            {
                dr["卫生间"] = 0;
            }
            if(canzx.Checked)
            {
                dr["CAN总线"] = 1;
            }
            else
            {
                dr["CAN总线"] = 0;
            }
            if(wxdwxt.Checked)
            {
                dr["卫星定位系统"] = 1;
            }
            else
            {
                dr["卫星定位系统"] = 0;
            }
            if(hsqbj.Checked)
            {
                dr["缓速器报警"] = 1;
            }
            else
            {
                dr["缓速器报警"] = 0;
            }
            if(zdmhzz.Checked)
            {
                dr["自动灭火装置"] = 1;
            }
            else
            {
                dr["自动灭火装置"] = 0;
            }
            if(fdjczdmhzz.Checked)
            {
                dr["发动机仓自动灭火装置"] = 1;
            }
            else
            {
                dr["发动机仓自动灭火装置"] = 0;
            }
            if(yjck.Checked)
            {
                dr["应急出口"] = 1;
            }
            else
            {
                dr["应急出口"] = 0;
            }
            if(yjc.Checked)
            {
                dr["应急锤"] = 1;
            }
            else
            {
                dr["应急锤"] = 0;
            }
            if(fdbjzz.Checked)
            {
                dr["防盗、报警装置"] = 1;
            }
            else
            {
                dr["防盗、报警装置"] = 0;
            }
            if(scwpkccqwdx.Checked)
            {
                dr["双层、卧铺客车侧倾稳定性"] = 1;
            }
            else
            {
                dr["双层、卧铺客车侧倾稳定性"] = 0;
            }
            if(zlbzq.Checked)
            {
                dr["质量保证期"] = 1;
            }
            else
            {
                dr["质量保证期"] = 0;
            }
            if(fymfx.Checked)
            {
                dr["防雨密封性"] = 1;
            }
            else
            {
                dr["防雨密封性"] = 0;
            }
            dr["客车类型"] = cllx.Text;
            dr["客车等级"] = cldj.Text;
            #endregion
            dt.Rows.Add(dr);
            FastReport.Report report = new FastReport.Report();
            if (sender == "1")
            {
                report.Load(@".\fh.frx");
                report.RegisterData(dt, "Data_Modification");
                if (!bPrint)
                {
                    report.Design();
                }
                else
                {
                    report.Print();
                }
            }
            if (sender == "2")
            {
                report.Load(@".\fhs.frx");
                report.RegisterData(dt, "Data_Modification");
                report.Prepare();
                FastReport.Export.Pdf.PDFExport pdf = new PDFExport();
                if (!bPrint)
                {
                    report.Show();
                }
                else
                {
                    if (pdf.ShowDialog())
                    {
                        report.Export(pdf,adress+@""+filename+@"\"+ pzhm.Text+".pdf");
                    }
                }
            }
        }

        private void button1_Click(object sender, EventArgs e)
        {
            Print(false,"1");
        }

        private void button2_Click(object sender, EventArgs e)
        {
            Print(true,"1");
            cllx.Text = "";
            csdw.Text = "";
            //cldj.Text = "";

            //保存combobox的选项内容到配置文件1.ini
            StreamWriter sw = new StreamWriter(path, true);
            if (!(cllx.Items.Contains(cllx.Text)))
            {
                sw.WriteLine(cllx.Text);
            }
            cllx.Items.Insert(0, cllx.Text);
            sw.Close();
            StreamWriter sw1 = new StreamWriter(path1, true);
            if (!(csdw.Items.Contains(csdw.Text)))
            {
                sw1.WriteLine(csdw.Text);
            }
            csdw.Items.Insert(0, csdw.Text);
            sw1.Close();
            StreamWriter sw2 = new StreamWriter(path2, true);
            if (!(cldj.Items.Contains(cldj.Text)))
            {
                sw2.WriteLine(cldj.Text);
            }
            cldj.Items.Insert(0, cldj.Text);
            sw2.Close();
        }

        private void button3_Click(object sender, EventArgs e)
        {
            Print(true, "2");
            //foreach (Control ctl in this.Controls)
            //{
            //    if (ctl is TextBox)
            //    {
            //        (ctl as TextBox).Text = "";
            //    }
            //    if (ctl is CheckBox)
            //    {
            //        (ctl as CheckBox).Checked = false;
            //    }
            //}
            //foreach (Control ctls in this.Controls)
            //{
            //    if (ctls is GroupBox)
            //    {
            //        foreach (Control ctlas in ctls.Controls)
            //        {
            //            if (ctlas is TextBox)
            //            {
            //                if ((ctlas as TextBox).Name == "pzhm")
            //                {
            //                    (ctlas as TextBox).Text = "豫A";
            //                }
            //                else
            //                {
            //                    (ctlas as TextBox).Text = "";
            //                }
            //            }
            //            if(ctlas is CheckBox)
            //            {
            //                (ctlas as CheckBox).Checked = false;
            //            }
            //        }
            //    }
            //}
            cllx.Text = "";
            csdw.Text = "";
            cldj.Text = "";
            //添加或者选择combobox选项后，更新combobox选项顺序
            //if (comboBox1.Items.Contains(comboBox1.Text))
            //{
            //comboBox1.Items.Remove(comboBox1.Text);
            //}
            //文件追加 true
            //保存combobox的选项内容到配置文件1.ini
            StreamWriter sw = new StreamWriter(path, true);
            if (!(cllx.Items.Contains(cllx.Text)))
            {
                sw.WriteLine(cllx.Text);
            }
            cllx.Items.Insert(0, cllx.Text);
            sw.Close();
            StreamWriter sw1 = new StreamWriter(path1, true);
            if (!(csdw.Items.Contains(csdw.Text)))
            {
                sw1.WriteLine(csdw.Text);
            }
            csdw.Items.Insert(0, csdw.Text);
            sw1.Close();
            StreamWriter sw2 = new StreamWriter(path2, true);
            if (!(cldj.Items.Contains(cldj.Text)))
            {
                sw2.WriteLine(cldj.Text);
            }
            cldj.Items.Insert(0, cldj.Text);
            sw2.Close();
        }

        private void Form1_Load(object sender, EventArgs e)
        {
            path = Application.StartupPath + "\\车辆类型.txt";
            path1 = Application.StartupPath + "\\车属单位.txt";
            path2 = Application.StartupPath + "\\车辆等级.txt";
            if (File.Exists(path))
            {
                //读取配置文件，并加载到combobox选项中，默认选中第一个选项
                //StreamReader sr = new StreamReader(path,Encoding.Default);
                StreamReader sr = new StreamReader(path, true);

                while (sr.Peek() > 0)
                {
                    cllx.Items.Add(sr.ReadLine());
                }
                sr.Close();
                //选中combobox第一个
                //cllx.Text = (string)cllx.Items[-1];
            }
            if (File.Exists(path1))
            {
                //读取配置文件，并加载到combobox选项中，默认选中第一个选项
                //StreamReader sr = new StreamReader(path,Encoding.Default);
                StreamReader sr1 = new StreamReader(path1, true);

                while (sr1.Peek() > 0)
                {
                    csdw.Items.Add(sr1.ReadLine());
                }
                sr1.Close();
                //选中combobox第一个
                //csdw.Text = (string)csdw.Items[-1];
            }
            if (File.Exists(path2))
            {
                //读取配置文件，并加载到combobox选项中，默认选中第一个选项
                //StreamReader sr = new StreamReader(path,Encoding.Default);
                StreamReader sr2 = new StreamReader(path2, true);

                while (sr2.Peek() > 0)
                {
                    cldj.Items.Add(sr2.ReadLine());
                }
                sr2.Close();
                cllx.Text = (string)cllx.Items[-1];
                csdw.Text = (string)csdw.Items[-1];
                //选中combobox第一个
                cldj.Text = (string)cldj.Items[-1];
            }
        }
    }
}
